package org.jeecg.modules.basic.warehouse.entity;


import java.io.Serializable;
import java.math.BigDecimal;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.TableLogic;
import lombok.Data;
import com.fasterxml.jackson.annotation.JsonFormat;
import org.springframework.format.annotation.DateTimeFormat;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.jeecg.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

/**
 * @Description: 仓库
 * @Author: jeecg-boot
 * @Date:   2023-08-09
 * @Version: V1.0
 */
@Data
@TableName("wms_basic_warehouse")
@Accessors(chain = true)
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="wms_basic_warehouse对象", description="仓库")
public class WmsBasicWarehouse implements Serializable {
    //private static final long serialVersionUID = 1L;

	/**主键*/
	@TableId(type = IdType.ASSIGN_ID)
    @ApiModelProperty(value = "主键")
    private java.lang.String id;
	/**创建人*/
    @ApiModelProperty(value = "创建人")
    private java.lang.String createBy;
	/**创建日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "创建日期")
    private java.util.Date createTime;
	/**更新人*/
    @ApiModelProperty(value = "更新人")
    private java.lang.String updateBy;
	/**更新日期*/
	@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss")
    @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss")
    @ApiModelProperty(value = "更新日期")
    private java.util.Date updateTime;
	/**所属部门*/
    @ApiModelProperty(value = "所属部门")
    @Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "org_code")
    private java.lang.String sysOrgCode;
	/**仓库名称*/
	@Excel(name = "仓库名称", width = 15)
    @ApiModelProperty(value = "仓库名称")
    private java.lang.String name;
	/**仓库编码*/
	@Excel(name = "仓库编码", width = 15)
    @ApiModelProperty(value = "仓库编码")
    private java.lang.String code;
	/**描述*/
	@Excel(name = "描述", width = 15)
    @ApiModelProperty(value = "描述")
    private java.lang.String description;
	/**物料分类*/
	@Excel(name = "物料分类", width = 15, dictTable = "wms_basic_material_type", dicText = "name", dicCode = "id")
	@Dict(dictTable = "wms_basic_material_type where status=1 and del_flag=0", dicText = "name", dicCode = "id")
    @ApiModelProperty(value = "物料分类")
    private java.lang.String materialTypeId;
	/**最大容量*/
	@Excel(name = "最大容量", width = 15)
    @ApiModelProperty(value = "最大容量")
    private BigDecimal maxCapacity;
	/**最大容量(辅单位)*/
	@Excel(name = "最大容量(辅单位)", width = 15)
    @ApiModelProperty(value = "最大容量(辅单位)")
    private BigDecimal maxCapacityAssist;
	/**预警容量*/
	@Excel(name = "预警容量", width = 15)
    @ApiModelProperty(value = "预警容量")
    private BigDecimal warningCapacity;
	/**预警容量(辅单位)*/
	@Excel(name = "预警容量(辅单位)", width = 15)
    @ApiModelProperty(value = "预警容量(辅单位)")
    private BigDecimal warningCapacityAssist;
	/**地址*/
    @ApiModelProperty(value = "地址")
    private java.lang.String address;
    /**地址名称*/
    @Excel(name = "地址", width = 15)
    @ApiModelProperty(value = "地址名称")
    private java.lang.String addressName;
	/**详细地址*/
	@Excel(name = "详细地址", width = 15)
    @ApiModelProperty(value = "详细地址")
    private java.lang.String infoAddress;
	/**逻辑删除*/
    @ApiModelProperty(value = "逻辑删除")
    @TableLogic
    private java.lang.Integer delFlag;
	/**是否使用*/
	@Excel(name = "是否使用", width = 15,dicCode = "use_flag")
    @ApiModelProperty(value = "是否使用")
    @Dict(dicCode = "yn")
    private java.lang.String isUse;
	/**状态*/
	@Excel(name = "状态", width = 15, dicCode = "is_enabled")
	@Dict(dicCode = "is_enabled")
    @ApiModelProperty(value = "状态")
    private java.lang.String status;
	/**库区摆放顺序*/
	@Excel(name = "库区摆放顺序", width = 15, dicCode = "wms_warehouse_sequence")
	@Dict(dicCode = "wms_warehouse_sequence")
    @ApiModelProperty(value = "库区摆放顺序")
    private java.lang.String sequence;
	/**管理部门*/
	@Excel(name = "管理部门", width = 15, dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
	@Dict(dictTable = "sys_depart", dicText = "depart_name", dicCode = "id")
    @ApiModelProperty(value = "管理部门")
    private java.lang.String managerialDeptId;
	/**仓库属性*/
	@Excel(name = "仓库属性", width = 15, dicCode = "wms_warehouse_attribute")
	@Dict(dicCode = "wms_warehouse_attribute")
    @ApiModelProperty(value = "仓库属性")
    private java.lang.String attribute;
	/**启用库区管理*/
	@Excel(name = "启用库区管理", width = 15,dicCode = "is_use_area")
    @ApiModelProperty(value = "启用库区管理")
    private java.lang.String isUseArea;
	/**租户id*/
    @ApiModelProperty(value = "租户id")
    private java.lang.Integer tenantId;

    @ApiModelProperty(value = "工装长度")
    private BigDecimal toolLength;

    @Excel(name = "超容量控制方式", width = 15,dicCode = "warehouse_overCapacityWay")
    @ApiModelProperty(value = "超容量控制方式（1不控制 2 弱控 3 强控）")
    @Dict(dicCode="warehouse_overCapacityWay")
    private java.lang.String overCapacityWay;

    @Excel(name = "容量控制单位", width = 15,dicCode = "capacity_control_unit")
    @ApiModelProperty(value = "容量控制单位 1 按库存单位 2 按辅助单位")
    @Dict(dicCode="capacity_control_unit")
    private java.lang.String capacityControlUnit;

    @Excel(name = "其他容量控制", width = 15,dicCode = "warehouse_otherCapacityControl")
    @ApiModelProperty(value = "其他容量控制( 1宽度 2 个数)")
    @Dict(dicCode="warehouse_otherCapacityControl")
    private java.lang.String otherCapacityControl;

    @Excel(name = "入库策略", width = 15,dicCode = "warehouse_strategy")
    @ApiModelProperty(value = "入库策略")
    @Dict(dicCode="warehouse_strategy")
    private java.lang.String warehouseStrategy;

    @Excel(name = "最小库存", width = 15)
    @ApiModelProperty(value = "最小库存")
    private BigDecimal minCapacity;
    @Excel(name = "最小库存(辅单位)", width = 15)
    @ApiModelProperty(value = "最小库存(辅单位)")
    private BigDecimal minCapacityAssist;
}
